package com.bl.student.common.template;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * Created by yujingyi on 2017/8/28.
 */
public class SysMessageTemplate {

    private SysMessageType templateType;

    private String content;

    public SysMessageTemplate(SysMessageType sysMessageType, String... templateArgs) {
        this.templateType = sysMessageType;
        this.content = String.format(this.templateType.getContent(), templateArgs);
    }

    public String getContent() {
        return this.content;
    }

    @Getter
    @AllArgsConstructor
    public enum SysMessageType {

        FIRST_LOGIN("欢迎注册", "尊敬的用户您好，欢迎使用连接App！这是一款全新的活动社交软件，希望您可以结合使用体验为我们提出宝贵意见，我们将会不断优化现有功能，并继续研发更多新的酷炫功能。望您能不离不弃，愿我们共同成长！"),

        ACTIVITY_LOCKED("活动锁定", "您参加的<%s>活动<%s>已成功开启并进入锁定时间，请在%s前准时到达活动地点，否则违约金将被全部扣除。"),

//        ACTIVITY_STARTED("活动开始", "您参加的%s活动%s已成功开启并进入锁定时间，请在%s前准时到达活动地点，否则违约金将被全部扣除。"),

        ACTIVITY_DISSOLVED("活动解散", "很遗憾，您参加的<%s>活动<%s>因在锁定时间开始前未达到参与人数下限无法成功举办，该活动将自动解散。您支付的活动金和违约金将在24 小时内自动返还至钱包"),

        ACTIVITY_DELETED("活动被删除", "抱歉，您的<%s>活动已被解散，您可能违反了以下规则：" +
                "1. 发布广告或非活动类的信息" +
                "2. 发布带有性暗示、色情、暴力等违法活动。" +
                "若频繁违反规则，将受到封号处分：" +
                "1. 第二次活动被解散，封号24小时；" +
                "2. 第三次活动被解散，封号3天；" +
                "3. 第四次活动被解散，永久封号"),

        ORG_JOINED("成功加入组织", "恭喜！您向<%s>提交的加入组织申请已通过审核，<%s>欢迎您的加入"),

        USER_BANNED("你被封禁了", "老哥你被进行%s封禁了"),

        JOINED_ORG("成组加入组织", "老哥你已经成功加入%s"),

        CREATED_ORG("成功创建组织", "您的组织%s已成功创建"),

        PENALTY_DEDUCTED("违约金扣除", "很遗憾，您未准时到达活动<%s>约定地点范围，您的违约金已被瓜分。下次记得准时呦~"),

        PENALTY_DISPATCHED("违约金瓜分", "恭喜您准时到达活动地点，并瓜分了违约者的违约金<%s>元！可点击钱包查看"),

        BALANCE_NOT_ENOUGH("加入活动余额不足", "抱歉，您申请加入的活动<%s>，已被发起人审核通过，但因余额不足加入失败。报名前记得保持余额充足哦~"),

        CUSTOM_TEMPLATE("自定义消息", "%s");

        private String name;
        private String content;
    }

    public static void main(String[] args) {
        SysMessageTemplate template = new SysMessageTemplate(SysMessageType.ACTIVITY_LOCKED);

        System.out.println(template.getContent());
    }
}
